package model.interfaces;


/**
 *	Interface that should be implemented by all classes that
 *	act as rules. 
 */
public interface Rule {
	/**
	 * Method that receives an object which must be checked if
	 * should be taken into account for the rule.
	 * @param object
	 */
	public void addObject(Object object);
	
	/**
	 * Method that checks if tue rule is achieved depending on its
	 * state.
	 * @return
	 * 	True if all conditions are achieved and
	 * 	False if any is not achieved
	 */
	public boolean verify();
	
	/**
	 * Method that resests state to the original one, taking back actions
	 * performed by addObject.
	 */
	public void reset();
}
